import util from './utils/util.js';
import {
    HTTP_REQUEST_URL
} from './config.js';
import Server from './utils/Server.js';

App({
    onLaunch: function(option) {
        if (HTTP_REQUEST_URL == '') {
            console.error("请配置根目录下的config.js文件中的 'HTTP_REQUEST_URL'\n\n请修改开发者工具中【详情】->【AppID】改为自己的Appid\n\n请前往后台【小程序】->【小程序配置】填写自己的 appId and AppSecret");
            return false;
        }
        var that = this;

        // 小程序进入小程序
        if (option.scene == '1037' || option.scene == '1038') {
            if (option.referrerInfo && option.referrerInfo.appId) {
                that.globalData.fromAppid = option.referrerInfo.extraData.fromAppid
                that.globalData.phone = option.referrerInfo.extraData.phone
            }
        }
        if (option.query.hasOwnProperty('scene')) {
            switch (option.scene) {
                //扫描小程序码
                case 1047:
                    that.globalData.code = option.query.scene;
                    break;
                    //长按图片识别小程序码
                case 1048:
                    that.globalData.code = option.query.scene;
                    break;
                    //手机相册选取小程序码
                case 1049:
                    that.globalData.code = option.query.scene;
                    break;
                    //直接进入小程序
                case 1001:
                    that.globalData.spid = option.query.scene;
                    break;
            }
        }

        // 获取导航高度；
        wx.getSystemInfo({
            success: res => {
                //导航高度
                this.globalData.navHeight = res.statusBarHeight * (750 / res.windowWidth) + 97;
            },
            fail(err) {}
        });
        const updateManager = wx.getUpdateManager();
        updateManager.onCheckForUpdate(function(res) {
            // 请求完新版本信息的回调

        })

        updateManager.onUpdateReady(function() {
            wx.showModal({
                title: '更新提示',
                content: '新版本已经准备好，是否重启应用？',
                success: function(res) {
                    if (res.confirm) {
                        // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                        updateManager.applyUpdate()
                    }
                }
            })
        });

        updateManager.onUpdateFailed(function() {
            return that.Tips({
                title: '新版本下载失败'
            });
        })
        //实例化聊天服务
        this.$chat = new Server(this);

    },
    $chat: null,
    globalData: {
        navHeight: 0,
        routineStyle: '#ffffff',
        openPages: '',
        spid: 0,
        code: 0,
        urlImages: '',
        url: HTTP_REQUEST_URL,
        token: '',
        isLog: false,
        expiresTime: 0,
        MyMenus: [],
        userInfo: {},
        loginType: 'routine',
        selectValue: [],
        phone: '',
        appid: '',
        fromAppid: '',
        cat_id: '',
        spread_uid: '',
        uid:''
    },
    /**
     * 聊天事件快捷注册
     * 
     */
    $on: function(name, action) {
        this.$chat.$on(name, action);
    },
    /*
     * 信息提示 + 跳转
     * @param object opt {title:'提示语',icon:''} | url
     * @param object to_url 跳转url 有5种跳转方式 {tab:1-5,url:跳转地址}
     */
    Tips: function(opt, to_url) {
        return util.Tips(opt, to_url);
    },
    /**
     * 快捷调取助手函数
     */
    help: function() {
        return util.$h;
    },
    /*
     * 合并数组
     * @param array list 请求返回数据
     * @param array sp 原始数组
     * @return array
     */
    SplitArray: function(list, sp) {
        return util.SplitArray(list, sp)
    },
})